首页>>百科常识

什么是指针?有什么作用?

今天宠物迷的小编给各位宠物饲养爱好者分享指针函数的作用的宠物知识,其中也会对什么是指针?有什么作用?(指针的作用)进行专业的解释,如果能碰巧解决你现在面临的宠物相关问题,别忘了关注本站哦,现在我们开始吧!

什么是指针?有什么作用?

执行数据在内存里存储着,每一字节数据都有一个序列号,叫做地址,指针就是存这些地址的。指针的操作就是地址的操作,比较方便。内存地址也是指针
书上有明确概念的吧。

请教C++中我看到有些函数定义成指针类型,定义成指针有什么意义用途呢?

什么是指针?有什么作用?

指针函数是指带指针的函数,即本质是一个函数。

我们知道函数都有返回类型(如果不返回值,则为无值型),只不过指针函数返回类型是某一类型的指针。其定义格式如下所示:
返回类型标识符 *返回名称(形式参数表)
{ 函数体 }

返回类型可以是任何基本类型和复合类型。返回指针的函数的用途十分广泛。事实上,每一个函数,即使它不带有返回某种类型的指针,它本身都有一个入口地址,该地址相当于一个指针。比如函数返回一个整型值,实际上也相当于返回一个指针变量的值,不过这时的变量是函数本身而已,而整个函数相当于一个“变量”。例如下面一个返回指针函数的例子:
#include
float *find();
main()
{
static float score[][4]={{60,70,80,90},{56,89,34,45},{34,23,56,45}};
float *p;
int i,m;
printf("Enter the number to be found:");
scanf("%d",&m);
printf("the score of NO.%d are:\n",m);
p=find(score,m);
for(i=0;i<4;i++)
printf("%5.2f\t",*(p+i));
}
float *find(float(*pionter)[4],int n)/*定义指针函数*/
{
float *pt;
pt=*(pionter+n);
return(pt);
}
学生学号从0号算起,函数find()被定义为指针函数,起形参pointer是指针指向包含4个元素的一维数组的指针变量。pointer+1指向 score的第一行。*(pointer+1)指向第一行的第0个元素。pt是一个指针变量,它指向浮点型变量。main()函数中调用find()函数,将score数组的首地址传给pointer.

c语言的函数指针举个例子

函数指针告诉CPU下一步需要执行哪里的代码的指针, 一数组十分相像. #include void function(int i, double d) //一个函数的声明{ printf("函数运行, %d, %lf\n", i, d);}void AnotherFunction(int i, double d) //另外一个函数声明{ printf("又一个函数运行, %d, %lf\n", i, d);}int main(){ void (*pFun)(int, double); //定义了一个函数指针 int (*p)(int , double); //用于调试的函数指针 pFun = function; //让这个函数指针指向第一个函数 pFun(10, 10.101); //通过这个函数指针来调用第一个函数 pFun = AnotherFunction; //让这个函数指针指向第二个函数 pFun(20, 20.202); //通过这个函数指针来调用第二个函数 //若将以下代码取消注释, 就会产生错误 /* p = function; p = AnotherFunction; //原因很简单, 因为p是必须指向一个返回值为int, 第一个参数为int, 第二个参数为double的函数, 但是在此代码中定义的函数返回值是void */ //这个实验中, 直接用函数名来赋值了, 是因为函数名其实就是这个函数的指针 //而在平常调用函数时, 都要加上(), 如:printf(""); //这里, "()"就相当于'*'(就是取值运算符), printf是函数指针, 就相当于是数组名, 即数组的首地址 return 0;}

c语言指针定义,有什么用,作用有

C语言_071_指针的定义和使用_上

C语言指针的作用有哪些?

指针的用途非常广泛,比如如果你想通过函数改变一个变量的值,就得用指针而不能用值传递。还有在很多时候变量,特别是对象的数据量实在太大,程序员就会用指针来做形参,只需要传递一个地址就行,大大提高了效率。简单地说指针就是指向变量和对象的地址。 基本说明: 1、在计算机中,所有的数据都是存放在存储器中的。 一般把存储器中的一个字节称为一个内存单元, 不同的数据类型所占用的内存单元数不等,如整型量占2个单元,字符量占1个单元等; 2、为了正确地访问这些内存单元,须为每个内存单元编上号。 根据一个内存单元的编号即可准确地找到该内存单元。既然根据内存单元的编号或地址就可以找到所需的内存单元,所以通常也把这个地址称为指针。内存单元的指针和内存单元的内容是两个不同的概念。

使用“指针”进行函数参数传递有何特点?

首先你要认识函数传参是怎么进行的

函数传参是复制形的,举个例子说:

void modify(int a)
{
a++;
}

void main()
{
int a=5;
modify(a);
printf("%d",a);
}
这个程序的答案还是5。为什么?
因为当调用modify(a)时,在执行modify函数时,是另外开辟了一个内存空间,将main中a的值复制过来,modify函数中所有的操作都是相对于这个新开辟的内存空间而言的,对原来的a没有任何改变。

现在就来说说指针,如果用指针传参的话那就完全不一样了,指针(pointer),说白了即是指向变量内存地址。同样上面的例子:
void modify(int * a)
{
(*a)++;
}

void main()
{
int a=5;
modify(&a);
printf("%d",a);
}
这个答案当然是6
因为你传进去的是a的地址,所以在modify函数中的操作都是对a地址上的内容进行操作,即是操作a所以modify函数不用返回这个数,main中a的值也会改变。因为大家都是操作同一个内存空间,而上面不用指针,modify操作的是另一个新开辟的内存空间,只是这个内存空间初始值和a一样。

现在来说说传参,其实你“为什么函数参数是字符串的多用指针?” 那句我不是很明白,C中的字符串传参好像就指针一种形式(除非用结构体)。
何时用指针,何时用拷贝。当传的参数是一个结构体,而这个结构体比较大,这时最好用指针,因为如果用拷贝的话,单单花在拷贝的时间就要浪费很多,而如果这个函数经常被调用,那么这效率问题就出现了。

你在子函数中要对你的主调用函数中变量进行操作时也可以用指针做参数,这样子函数就可以不用return 如果不是用指针的话,就要再子函数的未尾加上一条return x;把这个数返回当返回值。

多看点书,多写点程序,刚开始学都会对指针比较迷茫。写多了,自然而然就懂了。

c语言中,要用函数直接调用就好啦。为什么还要用指针???

函数的调用必须是已知文件名的。如果你写一个系统的某一层,不知道其他层的内部情况,这时候用指针传递函数最合适。还有,结构体里包含指向函数的指针,就相当于一个简单的“对象”了。 看看linux内核里各接口的定义。函数指针的使用使的内核可以很多人同时开发,并且大家只需要知道相应的接口就可以了。这套框架,离不开函数指针。

函数指针与指针函数返回值的区别是什么?

指针函数是指带指针的函数,即本质是一个函数。函数返回类型是某一类型的指针。类型标识符 *函数名(参数表)int *f(x,y);函数指针是指向函数的指针变量,即本质是一个指针变量。int (*f) (int x); /* 声明一个函数指针 */f=func; /* 将func函数的首地址赋给指针f */ 主要的区别是一个是指针变量,一个是函数。在使用是必要要搞清楚才能正确使用。

什么是指向函数的指针,有什么好处

函数指针是指向函数的指针变量。 因而“函数指针”本身首先应是指针变量,只不过该指针变量指向函数。这正如用指针变量可指向整型变量、字符型、数组一样,这里是指向函数。 C在编译时,每一个函数都有一个入口地址,该入口地址就是函数指针所指向的地址。有了指向函数的指针变量后,可用该指针变量调用函数,就如同用指针变量可引用其他类型变量一样,在这些概念上是大体一致的。函数指针有两个用途:调用函数和做函数的参数。

C++的指针到底是干什么的,有什么用?

C++属于需要手动操作内存的语言,指针就是指向某一内存的地址。这个gfw找本书看一下就OK了,

本文由宠物迷 百科常识栏目发布,非常欢迎各位朋友分享到个人朋友圈,但转载请说明文章出处“什么是指针?有什么作用?

标签:宠物爱好